﻿using System;

namespace SportTraining.MVVM.ViewModel
{
    /// <summary>
    ///  view model главного окна
    ///  в нашем случае главное окно есть контейнер для Frame в котором отображаются страницы (Page)
    /// </summary>
    public interface IMainWindowViewModel : IViewModelBase
    {
        /// <summary>
        ///  текущая страница
        /// </summary>
        Uri CurrentPageUri { get; set; }
        
        /// <summary>
        /// сохрание объекта в словарике 
        /// используем для сохранения объектов которые должны гулять между view  model's
        /// </summary>
        /// <param name="key">ключ</param>
        /// <param name="value">значение</param>
        void SaveObject(object key, object value);

        /// <summary>
        /// получение объекта из словарика по ключу
        /// используем для сохрания объектов которые должны гулять между view  model's
        /// </summary>
        /// <param name="key">ключ</param>
        /// <returns>искомый объект</returns>
        object GetObject(object key);

        /// <summary>
        ///  Удаление объекта из словарика
        /// </summary>
        /// <param name="key"></param>
        void DeleteObject(object key);

        /// <summary>
        ///  Очистить словарик
        /// </summary>
        void ClearDictionary();

    }
}
